1. Technical Field
The present invention relates to the field of automatic test equipment, and particularly to a debugging support technology of a test program incorporated in automatic test equipment.
2. Related Art
Conventionally, since automatic test equipment (hereinafter referred to as “ATE”) is provided in accordance with specifications of respective ATE manufacturers, it has low flexibility in configurations such as of a pin and a measuring device, and is difficult to reuse test program resources. Because of this background, open architecture ATE has a standardized interface has been proposed to realize scalable and flexible ATE which can modify a system such that it has the optimal configuration depending on a device's function.
For example, OPENSTAR (R) is one of open architecture ATE standards (see Semiconductor Test Consortium (online), searched in Feb. 12, 2008, http://www.semitest.org/jp/home). T2000 test system is a test system which employs an open architecture of OPENSTAR standard.
In the T2000 test system, an algorithm for a device test is described as a class of C++ language (hereinafter referred to as “test class”). Generally, a software development environment such as Microsoft Visual Studio (R) is used for creation of a test class, and Microsoft Visual Studio debugger (VS Debugger) is used for debugging of a test class at language level.
A debugger has a “breakpoint” function for interrupting execution of a program at a specified position. Using this function, a user can stop execution of a program written by oneself at any position (breakpoint), and debug the program finely line by line. However, there is a problem that conventional ATE cannot use a tool during debugging of a test class. A tool as used herein refers to a variety of processing functions (API) used for operations about device tests, and includes, for example, a tool for inputting a predetermined waveform to a device, and a tool for analyzing an output from a device.
FIG. 7 is a diagram schematically showing processing for debugging a test class in conventional ATE, and used for illustrating the above described problem Test class 330 created by a user operates in test process 320, and debugger 340 is used for debugging code of test class 330. In the illustration of FIG. 7, breakpoint 342 is set by a user in the part of “DUTID_t dutID=1;” in source code 341 of a test class attached to debugger 340.
In the conventional ATE, when test class 330 is debugged by debugger 340, processing is interrupted at a line at which breakpoint 342 is set, and transition is made to a break state. At this time, debugger 340 stops all the processing being executed on the ATE. If a plurality of threads are in a process, the conventional debugger stops all the threads in the break state.
In the break state, tool 310 cannot be used because handling of all requests is also stopped. If tool 310 is to be used, the stop (break) of the process by debugger 340 needs to be cancelled. For using the tool, it is also assumed that the stop is cancelled for a short time in which the tool is used, and the state is then immediately returned to the stopped state. However, in this case, during this short time, execution of the test class is performed, and the position in which the code is to be executed by the user also proceeds. Therefore, debugging of the user code in the target position cannot be continued.
Some debuggers have a suspend function. In a case where a test class is divided into a plurality of test units, this suspend function suspends (pauses) processing between a test of one test unit and a test of the next test unit, so that the tool can be used during the suspension. Although the tool can be used between predetermined test units, the suspend function does not allow the tool to be used at an arbitrary point of a test class.
Originally, the debugger and the tool are both intended to collect information about operation of a test class. Therefore, if the tool can be used during debugging of a test class by using the debugger and tool at the same time, this provides great benefit to users.
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a test system having a debugging support function which allows a tool to be used in a state in which execution of a test class is being stopped when the test class is debugged by a debugger.
A further object of the present invention is to provide a test system which can automatically make a state transition between a state in which a test class can be debugged and a state in which a tool can be used according to operation of a user.